package talayaco.dao.impl;

import java.util.List;
import java.util.Map;

import com.ibatis.sqlmap.client.SqlMapClient;

import talayaco.dao.ClienteDAO;
import talayaco.resources.connect.SqlMapConfig;

public class ClienteDAOImpl implements ClienteDAO {

	private SqlMapClient sqlMapClient = SqlMapConfig.getSqlMap();

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.dao.ClienteDAO#insertCliente(java.util.Map)
	 */
	public void insertCliente(Map<String, String> datosCliente)
			throws Exception {
		sqlMapClient.insert("insertCliente", datosCliente);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.dao.ClienteDAO#deleteCliente(java.lang.Long)
	 */
	public void deleteCliente(String nombreCliente) throws Exception {
		sqlMapClient.delete("deleteCliente", nombreCliente);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.dao.ClienteDAO#getClienteById(java.lang.String)
	 */
	@SuppressWarnings("unchecked")
	public Map<String, String> getClienteByNombre(String nombreCliente)
			throws Exception {
		Map<String, String> cliente = (Map<String, String>) sqlMapClient
				.queryForObject("getClienteByNombre", nombreCliente);

		return cliente;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.dao.ClienteDAO#getClientes()
	 */
	@SuppressWarnings("unchecked")
	public List<Map<String, String>> getClientes() throws Exception {

		List<Map<String, String>> clientes = (List<Map<String, String>>) sqlMapClient
				.queryForList("getCliente");

		return clientes;

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.dao.ClienteDAO#existeCliente(java.lang.String)
	 */
	public String existeCliente(String nombreCliente) throws Exception {

		String existe = (String) sqlMapClient.queryForObject("existeCliente",
				nombreCliente);

		return existe;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.dao.ClienteDAO#updateCliente(java.util.Map)
	 */
	public void updateCliente(Map<String, String> datosCliente)
			throws Exception {

		sqlMapClient.update("updateCliente", datosCliente);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.dao.ClienteDAO#validarMovimientosCliente(java.lang.String)
	 */
	public Long validarMovimientosCliente(String nombreCliente)
			throws Exception {
		return (Long) sqlMapClient.queryForObject("validarMovimientosCliente",
				nombreCliente);
	}

}
